{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "pytorch 支持 sklearn 的重参数搜索需要其他的库。一般的项目中设置好命令行脚本后，可以通过更改脚本参数手动实现超参数搜索"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:39.736408Z",
     "start_time": "2025-03-07T06:54:39.728199Z"
    }
   },
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "from tqdm.auto import tqdm\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "print(sys.version_info)\n",
    "for module in mpl, np, pd, sklearn, torch:\n",
    "    print(module.__name__, module.__version__)\n",
    "    \n",
    "device = torch.device(\"cuda:0\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "print(device)\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sys.version_info(major=3, minor=12, micro=9, releaselevel='final', serial=0)\n",
      "matplotlib 3.10.1\n",
      "numpy 2.0.1\n",
      "pandas 2.2.3\n",
      "sklearn 1.6.1\n",
      "torch 2.6.0+cu126\n",
      "cuda:0\n"
     ]
    }
   ],
   "execution_count": 8
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 准备数据"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:44.151049Z",
     "start_time": "2025-03-07T06:54:41.084741Z"
    }
   },
   "source": [
    "from sklearn.datasets import fetch_california_housing\n",
    "\n",
    "housing = fetch_california_housing()\n",
    "print(housing.DESCR)\n",
    "print(housing.data.shape)\n",
    "print(housing.target.shape)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _california_housing_dataset:\n",
      "\n",
      "California Housing dataset\n",
      "--------------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      ":Number of Instances: 20640\n",
      "\n",
      ":Number of Attributes: 8 numeric, predictive attributes and the target\n",
      "\n",
      ":Attribute Information:\n",
      "    - MedInc        median income in block group\n",
      "    - HouseAge      median house age in block group\n",
      "    - AveRooms      average number of rooms per household\n",
      "    - AveBedrms     average number of bedrooms per household\n",
      "    - Population    block group population\n",
      "    - AveOccup      average number of household members\n",
      "    - Latitude      block group latitude\n",
      "    - Longitude     block group longitude\n",
      "\n",
      ":Missing Attribute Values: None\n",
      "\n",
      "This dataset was obtained from the StatLib repository.\n",
      "https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html\n",
      "\n",
      "The target variable is the median house value for California districts,\n",
      "expressed in hundreds of thousands of dollars ($100,000).\n",
      "\n",
      "This dataset was derived from the 1990 U.S. census, using one row per census\n",
      "block group. A block group is the smallest geographical unit for which the U.S.\n",
      "Census Bureau publishes sample data (a block group typically has a population\n",
      "of 600 to 3,000 people).\n",
      "\n",
      "A household is a group of people residing within a home. Since the average\n",
      "number of rooms and bedrooms in this dataset are provided per household, these\n",
      "columns may take surprisingly large values for block groups with few households\n",
      "and many empty houses, such as vacation resorts.\n",
      "\n",
      "It can be downloaded/loaded using the\n",
      ":func:`sklearn.datasets.fetch_california_housing` function.\n",
      "\n",
      ".. rubric:: References\n",
      "\n",
      "- Pace, R. Kelley and Ronald Barry, Sparse Spatial Autoregressions,\n",
      "  Statistics and Probability Letters, 33 (1997) 291-297\n",
      "\n",
      "(20640, 8)\n",
      "(20640,)\n"
     ]
    }
   ],
   "execution_count": 9
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:45.151549Z",
     "start_time": "2025-03-07T06:54:45.145843Z"
    }
   },
   "source": [
    "# print(housing.data[0:5])\n",
    "import pprint  #打印的格式比较 好看\n",
    "\n",
    "pprint.pprint(housing.data[0:5])\n",
    "print('-'*50)\n",
    "pprint.pprint(housing.target[0:5])"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "array([[ 8.32520000e+00,  4.10000000e+01,  6.98412698e+00,\n",
      "         1.02380952e+00,  3.22000000e+02,  2.55555556e+00,\n",
      "         3.78800000e+01, -1.22230000e+02],\n",
      "       [ 8.30140000e+00,  2.10000000e+01,  6.23813708e+00,\n",
      "         9.71880492e-01,  2.40100000e+03,  2.10984183e+00,\n",
      "         3.78600000e+01, -1.22220000e+02],\n",
      "       [ 7.25740000e+00,  5.20000000e+01,  8.28813559e+00,\n",
      "         1.07344633e+00,  4.96000000e+02,  2.80225989e+00,\n",
      "         3.78500000e+01, -1.22240000e+02],\n",
      "       [ 5.64310000e+00,  5.20000000e+01,  5.81735160e+00,\n",
      "         1.07305936e+00,  5.58000000e+02,  2.54794521e+00,\n",
      "         3.78500000e+01, -1.22250000e+02],\n",
      "       [ 3.84620000e+00,  5.20000000e+01,  6.28185328e+00,\n",
      "         1.08108108e+00,  5.65000000e+02,  2.18146718e+00,\n",
      "         3.78500000e+01, -1.22250000e+02]])\n",
      "--------------------------------------------------\n",
      "array([4.526, 3.585, 3.521, 3.413, 3.422])\n"
     ]
    }
   ],
   "execution_count": 10
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:46.017846Z",
     "start_time": "2025-03-07T06:54:45.951051Z"
    }
   },
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "#拆分训练集和测试集，random_state是随机种子,同样的随机数种子，是为了得到同样的随机值\n",
    "x_train_all, x_test, y_train_all, y_test = train_test_split(\n",
    "    housing.data, housing.target, random_state = 7)\n",
    "x_train, x_valid, y_train, y_valid = train_test_split(\n",
    "    x_train_all, y_train_all, random_state = 11)\n",
    "# 训练集\n",
    "print(x_train.shape, y_train.shape)\n",
    "# 验证集\n",
    "print(x_valid.shape, y_valid.shape)\n",
    "# 测试集\n",
    "print(x_test.shape, y_test.shape)\n",
    "\n",
    "dataset_maps = {\n",
    "    \"train\": [x_train, y_train],\n",
    "    \"valid\": [x_valid, y_valid],\n",
    "    \"test\": [x_test, y_test],\n",
    "}\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(11610, 8) (11610,)\n",
      "(3870, 8) (3870,)\n",
      "(5160, 8) (5160,)\n"
     ]
    }
   ],
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:46.633031Z",
     "start_time": "2025-03-07T06:54:46.621064Z"
    }
   },
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "from torch.utils.data import DataLoader\n",
    "\n",
    "\n",
    "scaler = StandardScaler()\n",
    "scaler.fit(x_train)"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StandardScaler()"
      ],
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: start;\n",
       "  justify-content: space-between;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>StandardScaler()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 12
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 构建数据集"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:47.780723Z",
     "start_time": "2025-03-07T06:54:47.771022Z"
    }
   },
   "source": [
    "from torch.utils.data import Dataset\n",
    "\n",
    "class HousingDataset(Dataset):\n",
    "    def __init__(self, mode='train'):\n",
    "        self.x, self.y = dataset_maps[mode]\n",
    "        self.x = torch.from_numpy(scaler.transform(self.x)).float() #scaler是归一化的\n",
    "        self.y = torch.from_numpy(self.y).float().reshape(-1, 1)\n",
    "            \n",
    "    def __len__(self):\n",
    "        return len(self.x)\n",
    "    \n",
    "    def __getitem__(self, idx):\n",
    "        return self.x[idx], self.y[idx]\n",
    "    \n",
    "    \n",
    "train_ds = HousingDataset(\"train\")\n",
    "valid_ds = HousingDataset(\"valid\")\n",
    "test_ds = HousingDataset(\"test\")"
   ],
   "outputs": [],
   "execution_count": 13
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:48.410404Z",
     "start_time": "2025-03-07T06:54:48.400093Z"
    }
   },
   "source": [
    "train_ds[1]"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(tensor([-0.2981,  0.3523, -0.1092, -0.2506, -0.0341, -0.0060,  1.0806, -1.0611]),\n",
       " tensor([1.5140]))"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 14
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:49.355926Z",
     "start_time": "2025-03-07T06:54:49.351959Z"
    }
   },
   "source": [
    "from torch.utils.data import DataLoader\n",
    "\n",
    "\n",
    "batch_size = 256 #大一些，可以加快训练速度\n",
    "train_loader = DataLoader(train_ds, batch_size=batch_size, shuffle=True)\n",
    "val_loader = DataLoader(valid_ds, batch_size=batch_size, shuffle=False)\n",
    "test_loader = DataLoader(test_ds, batch_size=batch_size, shuffle=False)"
   ],
   "outputs": [],
   "execution_count": 15
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 定义模型"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:50.259141Z",
     "start_time": "2025-03-07T06:54:50.255386Z"
    }
   },
   "source": [
    "#回归模型我们只需要1个数\n",
    "\n",
    "class NeuralNetwork(nn.Module):\n",
    "    def __init__(self, input_dim=8):\n",
    "        super().__init__()\n",
    "        self.linear_relu_stack = nn.Sequential(\n",
    "            nn.Linear(input_dim, 30),\n",
    "            nn.ReLU(),\n",
    "            nn.Linear(30, 1)\n",
    "            )\n",
    "        \n",
    "    def forward(self, x):\n",
    "        # x.shape [batch size, 8]\n",
    "        logits = self.linear_relu_stack(x)\n",
    "        # logits.shape [batch size, 1]\n",
    "        return logits"
   ],
   "outputs": [],
   "execution_count": 16
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:50.557666Z",
     "start_time": "2025-03-07T06:54:50.552807Z"
    }
   },
   "source": [
    "class EarlyStopCallback:\n",
    "    def __init__(self, patience=5, min_delta=0.01):\n",
    "        \"\"\"\n",
    "\n",
    "        Args:\n",
    "            patience (int, optional): Number of epochs with no improvement after which training will be stopped.. Defaults to 5.\n",
    "            min_delta (float, optional): Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute \n",
    "                change of less than min_delta, will count as no improvement. Defaults to 0.01.\n",
    "        \"\"\"\n",
    "        self.patience = patience\n",
    "        self.min_delta = min_delta\n",
    "        self.best_metric = -1\n",
    "        self.counter = 0\n",
    "        \n",
    "    def __call__(self, metric):\n",
    "        if metric >= self.best_metric + self.min_delta:\n",
    "            # update best metric\n",
    "            self.best_metric = metric\n",
    "            # reset counter \n",
    "            self.counter = 0\n",
    "        else: \n",
    "            self.counter += 1\n",
    "            \n",
    "    @property\n",
    "    def early_stop(self):\n",
    "        return self.counter >= self.patience\n"
   ],
   "outputs": [],
   "execution_count": 17
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:51.280230Z",
     "start_time": "2025-03-07T06:54:51.276058Z"
    }
   },
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "@torch.no_grad()\n",
    "def evaluating(model, dataloader, loss_fct):\n",
    "    loss_list = []\n",
    "    for datas, labels in dataloader:\n",
    "        datas = datas.to(device)\n",
    "        labels = labels.to(device)\n",
    "        # 前向计算\n",
    "        logits = model(datas)\n",
    "        loss = loss_fct(logits, labels)         # 验证集损失\n",
    "        loss_list.append(loss.item())\n",
    "        \n",
    "    return np.mean(loss_list)\n"
   ],
   "outputs": [],
   "execution_count": 18
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:51.600795Z",
     "start_time": "2025-03-07T06:54:51.593880Z"
    }
   },
   "source": [
    "# 训练\n",
    "def training(\n",
    "    model, \n",
    "    train_loader, \n",
    "    val_loader, \n",
    "    epoch, \n",
    "    loss_fct, \n",
    "    optimizer, \n",
    "    tensorboard_callback=None,\n",
    "    save_ckpt_callback=None,\n",
    "    early_stop_callback=None,\n",
    "    eval_step=500,\n",
    "    ):\n",
    "    record_dict = {\n",
    "        \"train\": [],\n",
    "        \"val\": []\n",
    "    }\n",
    "    \n",
    "    global_step = 0\n",
    "    model.train()\n",
    "    with tqdm(total=epoch * len(train_loader)) as pbar:\n",
    "        for epoch_id in range(epoch):\n",
    "            # training\n",
    "            for datas, labels in train_loader:\n",
    "                datas = datas.to(device)\n",
    "                labels = labels.to(device)\n",
    "                # 梯度清空\n",
    "                optimizer.zero_grad()\n",
    "                # 模型前向计算\n",
    "                logits = model(datas)\n",
    "                # 计算损失\n",
    "                loss = loss_fct(logits, labels)\n",
    "                # 梯度回传\n",
    "                loss.backward()\n",
    "                # 调整优化器，包括学习率的变动等\n",
    "                optimizer.step()\n",
    " \n",
    "                loss = loss.cpu().item()\n",
    "                # record\n",
    "                \n",
    "                record_dict[\"train\"].append({\n",
    "                    \"loss\": loss, \"step\": global_step\n",
    "                })\n",
    "                \n",
    "                # evaluating\n",
    "                if global_step % eval_step == 0:\n",
    "                    model.eval()\n",
    "                    val_loss = evaluating(model, val_loader, loss_fct)\n",
    "                    record_dict[\"val\"].append({\n",
    "                        \"loss\": val_loss, \"step\": global_step\n",
    "                    })\n",
    "                    model.train()\n",
    "\n",
    "                    # 早停 Early Stop\n",
    "                    if early_stop_callback is not None:\n",
    "                        early_stop_callback(-val_loss)\n",
    "                        if early_stop_callback.early_stop:\n",
    "                            print(f\"Early stop at epoch {epoch_id} / global_step {global_step}\")\n",
    "                            return record_dict\n",
    "                    \n",
    "                # udate step\n",
    "                global_step += 1\n",
    "                pbar.update(1)\n",
    "                pbar.set_postfix({\"epoch\": epoch_id})\n",
    "        \n",
    "    return record_dict\n"
   ],
   "outputs": [],
   "execution_count": 19
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:54:51.890334Z",
     "start_time": "2025-03-07T06:54:51.885238Z"
    }
   },
   "source": [
    "#画线要注意的是损失是不一定在零到1之间的\n",
    "def plot_learning_curves(record_dict, sample_step=5):\n",
    "    # build DataFrame\n",
    "    train_df = pd.DataFrame(record_dict[\"train\"]).set_index(\"step\").iloc[::sample_step]\n",
    "    val_df = pd.DataFrame(record_dict[\"val\"]).set_index(\"step\")\n",
    "\n",
    "    # plot\n",
    "    for idx, item in enumerate(train_df.columns):\n",
    "        plt.plot(train_df.index, train_df[item], label=f\"train_{item}\")\n",
    "        plt.plot(val_df.index, val_df[item], label=f\"val_{item}\")\n",
    "        plt.grid()\n",
    "        plt.legend()\n",
    "        # plt.xticks(range(0, train_df.index[-1], 10*sample_step), range(0, train_df.index[-1], 10*sample_step))\n",
    "        plt.xlabel(\"step\")\n",
    "\n",
    "        plt.show()\n",
    "\n",
    "# plot_learning_curves(record)  #横坐标是 steps"
   ],
   "outputs": [],
   "execution_count": 20
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": "# 网格搜索，for循环实现"
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-07T06:55:58.151841Z",
     "start_time": "2025-03-07T06:54:52.313608Z"
    }
   },
   "source": [
    "for lr in [1e-2, 3e-2, 3e-1, 1e-3]: # 把参数组合放在这，参数代表学习率\n",
    "    #每次拿一个参数就要重新实例化一个模型\n",
    "    epoch = 100\n",
    "    model = NeuralNetwork()\n",
    "\n",
    "    # 1. 定义损失函数 采用MSE损失\n",
    "    loss_fct = nn.MSELoss()\n",
    "    # 2. 定义优化器 采用SGD\n",
    "    # Optimizers specified in the torch.optim package\n",
    "    optimizer = torch.optim.SGD(model.parameters(), lr=lr, momentum=0.9)\n",
    "\n",
    "    # 3. early stop\n",
    "    early_stop_callback = EarlyStopCallback(patience=10, min_delta=1e-3)\n",
    "\n",
    "    model = model.to(device)\n",
    "    record = training(\n",
    "        model, \n",
    "        train_loader, \n",
    "        val_loader, \n",
    "        epoch, \n",
    "        loss_fct, \n",
    "        optimizer, \n",
    "        early_stop_callback=early_stop_callback,\n",
    "        eval_step=len(train_loader)\n",
    "        )\n",
    "    print(\"lr: {}\".format(lr))\n",
    "    plot_learning_curves(record)\n",
    "    model.eval()\n",
    "    loss = evaluating(model, val_loader, loss_fct)\n",
    "    print(f\"loss:     {loss:.4f}\")"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "f881f84293114a5ab0846793963a87da"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 72 / global_step 3312\n",
      "lr: 0.01\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.3278\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "e83ba8031fe44f25bcf2a5fc56410599"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 53 / global_step 2438\n",
      "lr: 0.03\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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IiIicks+oYNjOoiIiHya/EIHmzqIiIh8knxCB7tXiIiIfJp8Qge7V4iIiHyafEKH7ZQtHURERL5JPqHDccA3pg4iIiJfJJvQYceWDiIiIt8km9DBMR1ERES+TT6hw36GTR1EREQ+ST6hwzGmg4iIiHyRfEKH7ZQNHURERL5JPqGDYzqIiIh8moxCh31FUsYOIiIiXySf0GE7tTBzEBER+ST5hA7p4tsQERGR98gndIDdK0RERL5MPqGDA0mJiIh8mnxCh+2UDR1ERES+ST6hw9HSwdRBRETki2QTOuCYMuvlchAREZFbsgkd7F4hIiLybfIJHZwyS0RE5NPkEzo4ZZaIiMinySd0cMosERGRT5NN6FDYQwdTBxERkU+STeiwDyW1MHUQERH5JNmEDnavEBER+Tb5hA77GaYOIiIinySf0MEVSYmIiHyafEIHuCIpERGRL5NP6OCYDiIiIp8mn9BhO2VLBxERkW+STehwHPCNbR1EREQ+STahg7NXiIiIfJt8QgfHdBAREfm0Swodzz//PCRJwkMPPdROxWk7jukgIiLybW0OHTt27MA777yD/v37t2d52kzBMR1EREQ+TdWWO1VXV2POnDl499138c9//vOC2xoMBhgMBsflyspKAIDRaITRaGzLw7tlsVgAACaTuV33S82z1zPr2zNY357HOvcs1rfntabO2+N1kYRofYfEHXfcgfDwcPzf//0fxo4diwEDBuCVV15xu+3ixYuxZMmSJtcvX74cOp2u1QVuztc5CqzLV+CqOAtmdLa0236JiIgIqK2txa233oqKigoEBwe3aR+tbun47LPPsHv3buzYsaNF2y9cuBALFixwXK6srERiYiImTZrU5kK7s2/NESA/D0nJyZg2rXe77ZeaZzQakZGRgYkTJ0KtVnu7OLLH+vY81rlnsb49rzV1bu+puBStCh15eXn4y1/+goyMDPj5+bXoPlqtFlqttsn1arW6Xd9USqUSAKBQKPhm9bD2fi3pwljfnsc69yzWt+e1pM7b4zVpVejYtWsXioqKMGjQIMd1ZrMZGzZswOuvvw6DweD48vc0TpklIiLyba0KHePHj8eBAwdcrrvzzjvRq1cvPPbYY14LHIDzAd8YO4iIiHxRq0JHUFAQ+vXr53JdQEAAIiIimlzvaWzpICIi8m3yWZHUdsqGDiIiIt/UpnU6nGVm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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.3099\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "0aae321f645449069b309b9942e10f86"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Early stop at epoch 9 / global_step 414\n",
      "lr: 0.3\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     nan\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "  0%|          | 0/4600 [00:00<?, ?it/s]"
      ],
      "application/vnd.jupyter.widget-view+json": {
       "version_major": 2,
       "version_minor": 0,
       "model_id": "ba8ad3c8f0074f9bb444e464f802abd0"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lr: 0.001\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss:     0.3738\n"
     ]
    }
   ],
   "execution_count": 21
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
